VSCode中配置CMake,通过CMake断点调试程序 您所在的位置:网站首页 ubuntu下使用vs code对cmake进行调试 VSCode中配置CMake,通过CMake断点调试程序

VSCode中配置CMake,通过CMake断点调试程序

2023-12-23 10:40| 来源: 网络整理| 查看: 265

第一步:

1.引入make

在VSCode中编写C++程序,只能编译一个源文件,如果需要同时编译多个源文件,那么就需要批处理工具——CMake工具或者Clion(专业的); make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——通过调用makefile文件中用户指定的命令来进行编译和链接的。

2.什么是makefiles? 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。 make需要按照makefile中的命令执行! makefile命令中就包含了调用许多编译器(如我们这里多用到的gcc编译器)去编译某个源文件的命令。 人总是“懒惰的”,makefile在一些简单的工程完全可以人工手写,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。因此我们引入了cmake

3.什么是cmake呢? CMake这个名字是cross platform make的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。 CMake可以更加简单的生成makefile文件给上面的make用。当然CMake还可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。

4.CMake生成makefile的原理 cmake生成makefile的原理是根据一个叫CMakeLists.txt文件(学名:组态档)去生成makefile。当然CMakeLists.txt就需要你自己去手写了!

5.编写CMakeLists.txt文件是重点

 

第二步:

1、下载安装 VSCode

2、下载安装 MinGW

3、下载安装 CMake

4、在VSCode里面安装插件

5、打开VSCode,ctrl+shift+P

6、然后导入一个文件,开始撸码,在这编写两个文件,一个是测试程序,一个是CMakeLists.txt

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.9) project(directory_test) #Bring the headers, such as Student.h into the project include_directories(include) #Can manually add the sources using the set command as follows: #set(SOURCES src/mainapp.cpp src/Student.cpp) #However, the file(GLOB...) allows for wildcard additions: file(GLOB SOURCES "src/*.cpp") add_executable(last ${SOURCES}) set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -g”)

这个文件也可以通过ctrl+shift+P  然后输入

注意:  1、CMakeLists.txt 文件中的这行代码 如果你要debug的时候就写上 否则不要写,编译的时候会报错

                  #set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -g”)

             2、需要在MinGW安装路径下进行操作,本来只有mingw32-make.exe文件,你需要复制一份改名为make.exe,只有这样才能在终端使用 make 命令操作,如下图:

 

第三步:Debug 断点调试

1、在源码左边进行加断点

2、按照一下操作,生成launch.json文件

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/last.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "E:/MinGW/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], //"preLaunchTask": "C/C++: g++.exe build active file" } ] }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有